package malitech.yadam.business.acquire;

import malitech.framework.util.TokenReplacer;
import malitech.yadam.model.acquire.JobStepParameters;

/**
 * This interface is implemented by all the JobStepRunners
 * @author ech
 *
 */
public interface JobStepRunner
{
    /**
     * called by the job runner sequentially for all steps
     * @param jobStepParameters
     */
    public void init(JobStepParameters jobStepParameters, TokenReplacer tokenReplacer);
    
    /**
     * after all steps are init'ed each step has a chance to insert new token into the token replacer
     * @param tokenReplacer
     */
    public void contributeToken();
    
    
    /**
     * execute the needed business... the tokenReplacer is then read only
     * @param tokenReplacer
     */
    public void run();
}
